package Response;
/*
  响应消息: 服务器端发送给客户端的数据
     * 数据格式:
        1: 响应行
           组成: 协议/版本 响应状态码  状态码描述
           响应状态码: 服务器告诉客户端浏览器本次请求和响应的一个状态
               1:状态码都是三位数字
               2:分类:
                   1: 1xx : 服务器接收客户端的消息,但没有接收完成,等待一段时间后,发送1xx多状态码
                   2: 2xx : 成功. 代表200
                   3: 3xx : 重定向. 代表302(重定向), 304(访问缓存)
                   4: 4xx : 客户端错误. 代表404(请求路径没有对应的资源),405(请求方式没有对应的doXxx方法).
                   5: 5xx : 服务器端错误. 代表: 500(服务器内部出现异常)
        2: 响应头
             * 常见的响应头
                1: Content-Type : 服务器告诉客户端本次响应体数据以及编码格式
                2: Content-disposition : 服务器告诉客户端以什么格式打开响应体数据
                    * Content-disposition的值:
                         1 : in-line:默认值,在当前页面内打开
                         2 : attachment;filename=xxx : 以附件形式打开响应体. (文件下载)
        3: 响应空行
        4: 响应体 : 传输的数据


 Response对象功能:
    1: 设置响应行 :
        1:格式 : HTTP/1.1 200 ok
        2:设置状态码 : setStatus(int sc)
     2: 设置响应头 : setHeader(String name,String value)
     3: 设置响应体:
         使用步骤:
            1: 获取输出流
                 1: 字符输出流 : printWriter getWriter()
                 2: 字节输出流 : ServletOutputStream getOutputStream()
            2: 使用输出流,将数据输出到客户端浏览器
               乱码问题 :
                   简单的形式,设置编码 : resp.setContentType("text/html;charset=utf-8");

 * 路径写法 :
    1: 路径分类 :
       1: 相对路径 : 通过相对路径[不]可以确定唯一资源
              相对路径以"."开头;不以"/"开头
              规则: 找到当前资源和目标资源的相对位置关系
                 * "./" : 当前目录
                 * "../" : 上一级目录
                 * "../../" : 上上级目录

       2: 绝对路径 : 通过绝对路径可以确定唯一的资源
              如 : http://localhost/demo10/responseDemo03
              * 绝对路径是以"/"开头的
              * 规则: 判断定义的路径是给谁用的?判断请求将从哪里发出
                 * 给客户端浏览器使用 : 需要加虚拟目录(项目的访问路径)
                     * 建议以后都动态获取虚拟目录 : request.getContextPath()
                     * <a> <form> 重定向....这些都是给客户端使用的需要加虚拟目录
                 * 给服务器使用 : 不需要加虚拟目录
                     * 转发路径就是给服务器端使用的



*/
public class Response01 {
}
